﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SanFranciscoModel.Alumno;
using SanFranciscoModel.Curso;

namespace SanFrancisco
{
    public partial class CargarAsistenciaAlumno : Form
    {
        public CargarAsistenciaAlumno()
        {
            InitializeComponent();
        }

        private void CargarAsistenciaAlumno_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'sanFranciscoDataSet.AsistenciaAlumno' table. You can move, or remove it, as needed.


            CargarCursos();
           // this.asistenciaAlumnoTableAdapter.Fill(this.sanFranciscoDataSet.AsistenciaAlumno);

        }

        private void CargarCursos()
        {
            List<Curso> ListCurso = new List<Curso>();
            CursoManager CursoManager = new CursoManager();

            ListCurso = CursoManager.getCursoActual();

            DataTable dtable = new DataTable();
            dtable.Columns.Add("id", typeof(int));
            dtable.Columns.Add("Nombre", typeof(string));

            foreach (Curso curso in ListCurso)
            {
                DataRow drow = dtable.NewRow();
                drow["Nombre"] = curso.NombreCurso;
                drow["id"] = curso.idCurso;
                dtable.Rows.Add(drow);
            }

            cmbCurso.DisplayMember = "Nombre";
            cmbCurso.ValueMember = "id";
            cmbCurso.DataSource = dtable;
        }

        private void cmbCurso_SelectedIndexChanged(object sender, EventArgs e)
        {
            AlumnoDataContext Alumno = new AlumnoDataContext();
            gridAsistencia.AutoGenerateColumns = false;
            gridAsistencia.DataSource = Alumno.AlumnosCurso((int)cmbCurso.SelectedValue);
        }

        private void btnGuardar_Click(object sender, EventArgs e)
        {
            AlumnoDataContext Alumno = new AlumnoDataContext();
           //Con esto pasamos lo del stored a una lista del objeto
            IEnumerable<ValidarAsistenciaAlumnosResult> a;
            a = ((IEnumerable<ValidarAsistenciaAlumnosResult>)Alumno.ValidarAsistenciaAlumnos(dpFecha.Value, ((int)cmbCurso.SelectedValue)));
            List<ValidarAsistenciaAlumnosResult> result = new List<ValidarAsistenciaAlumnosResult>();
            result = a.ToList();

            if (result[0].Cantidad > 0)
            {
                MessageBox.Show("Ya existe asistencia de ese curso en esa fecha.");
            }
            else
            {
                if (dpFecha.Value > DateTime.Now)
                {
                    MessageBox.Show("No se pueden cargar asistencias con fechas mayores a la actual.");
                }
                else
                {
                    int DNI;
                    bool Asistio;
                    for (int Fila = 0; Fila < gridAsistencia.Rows.Count; Fila++)
                    {

                        DNI = ((int)gridAsistencia.Rows[Fila].Cells["DNIAlumno"].Value);
                        if ((gridAsistencia.Rows[Fila].Cells["Asistio"].Value) == null)
                        {
                            Asistio = false;
                        }
                        else
                        {
                            Asistio = ((bool)gridAsistencia.Rows[Fila].Cells["Asistio"].Value);

                        }
                        AsistenciaAlumno AsisAlumno = new AsistenciaAlumno();
                        AsisAlumno.DNIAlumno = DNI;
                        //AsisAlumno.Asistio = Asistio;
                        AsisAlumno.Fecha = dpFecha.Value;
                        AsisAlumno.idCurso = ((int)cmbCurso.SelectedValue);
                        AlumnoManager AlumnoManager = new AlumnoManager();
                        AlumnoManager.guardarInasistenciaAlumno(AsisAlumno);
                    }
                    MessageBox.Show("Asistencias de alumnos ingresadas con exito");
                    this.Close();
                }
            }
        }

        private void gridAsistencia_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
           
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void label3_Click(object sender, EventArgs e)
        {

        }


    }
}
